/**
 * 提交预约咨询记录（完全模拟 Apifox 成功请求）
 * @param {Object} params - 预约参数
 * @returns {Promise<Object>} - 后端返回结果
 */
export function submitConsultAppointment(params) {
  const url = 'http://localhost:48080/app-api/mp/open/consult-record/appointment';
  console.log('Apifox 风格请求地址：', url);
  console.log('Apifox 风格提交参数：', params);
  
  // 仅校验 Apifox 成功案例中的必填字段
  const requiredFields = ['studentId', 'consultantId', 'consultDate', 'timeSlot', 'consultType', 'problemDesc'];
  const missingFields = requiredFields.filter(field => !params[field] && params[field] !== 0);
  if (missingFields.length > 0) {
    return Promise.reject(new Error(`缺少必填参数：${missingFields.join(', ')}`));
  }
  
  return new Promise((resolve, reject) => {
    wx.request({
      url: url,
      method: 'POST',
      data: params,
      header: {
        'Content-Type': 'application/json',
        // 移除 Token （如果 Apifox 成功案例中未带 Token）
        'Authorization': ''
      },
      timeout: 15000,
      success: (res) => {
        console.log('Apifox 风格返回结果：', res);
        if (res.statusCode >= 200 && res.statusCode < 300) {
          resolve(res.data || { code: 0, msg: '成功' });
        } else if (res.statusCode === 401) {
          wx.showModal({
            title: '登录失效',
            content: '你的登录状态已失效，请重新登录',
            showCancel: false,
            confirmText: '立即登录',
            success: () => {
              wx.redirectTo({ url: '/pages/logs/logs?redirect=' + encodeURIComponent('/pages/appointment/appointment') });
            }
          });
          reject(new Error('登录失效'));
        } else {
          reject(new Error(`请求失败 [${res.statusCode}]：${res.data?.msg || '服务器异常'}`));
        }
      },
      fail: (err) => {
        console.error('Apifox 风格请求失败：', err);
        reject(new Error('网络异常，请检查网络连接后重试'));
      }
    });
  });
}